package com.southminority.ethnic.pojo.otherPojo;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 机构介绍实体类
 * 
 * @author SouthMinority
 */
@Data
@TableName("organization")
@Schema(description = "机构介绍")
public class Organization implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 机构ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    @Schema(description = "机构ID")
    private Long id;

    /**
     * 机构名称
     */
    @TableField("name")
    @Schema(description = "机构名称")
    private String name;

    /**
     * 副标题
     */
    @TableField("subtitle")
    @Schema(description = "副标题")
    private String subtitle;

    /**
     * 简要描述
     */
    @TableField("description")
    @Schema(description = "简要描述")
    private String description;

    /**
     * 详细内容
     */
    @TableField("content")
    @Schema(description = "详细内容")
    private String content;

    /**
     * 负责人
     */
    @TableField("director")
    @Schema(description = "负责人")
    private String director;

    /**
     * 负责人职称
     */
    @TableField("director_title")
    @Schema(description = "负责人职称")
    private String directorTitle;

    /**
     * 成立日期
     */
    @TableField("establishment_date")
    @Schema(description = "成立日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate establishmentDate;

    /**
     * 机构类型
     */
    @TableField("organization_type")
    @Schema(description = "机构类型")
    private String organizationType;

    /**
     * 级别
     */
    @TableField("level")
    @Schema(description = "级别")
    private String level;

    /**
     * 封面图片
     */
    @TableField("cover_image")
    @Schema(description = "封面图片")
    private String coverImage;

    /**
     * 相关图片URLs
     */
    @TableField("image_urls")
    @Schema(description = "相关图片URLs")
    private String imageUrls;

    /**
     * 介绍视频URL
     */
    @TableField("video_url")
    @Schema(description = "介绍视频URL")
    private String videoUrl;

    /**
     * 联系信息
     */
    @TableField("contact_info")
    @Schema(description = "联系信息")
    private String contactInfo;

    /**
     * 研究方向
     */
    @TableField("research_directions")
    @Schema(description = "研究方向")
    private String researchDirections;

    /**
     * 主要成就
     */
    @TableField("achievements")
    @Schema(description = "主要成就")
    private String achievements;

    /**
     * 设施设备
     */
    @TableField("facilities")
    @Schema(description = "设施设备")
    private String facilities;

    /**
     * 合作情况
     */
    @TableField("cooperation")
    @Schema(description = "合作情况")
    private String cooperation;

    /**
     * 排序
     */
    @TableField("sort_order")
    @Schema(description = "排序")
    private Integer sortOrder;

    /**
     * 是否首页展示：1-是，0-否
     */
    @TableField("is_featured")
    @Schema(description = "是否首页展示：1-是，0-否")
    private Integer isFeatured;

    /**
     * 是否团队页展示：1-是，0-否
     */
    @TableField("is_team_display")
    @Schema(description = "是否团队页展示：1-是，0-否")
    private Integer isTeamDisplay;

    /**
     * 浏览次数
     */
    @TableField("view_count")
    @Schema(description = "浏览次数")
    private Integer viewCount;

    /**
     * 状态：1-启用，0-禁用，-1-已删除
     */
    @TableField("status")
    @Schema(description = "状态：1-启用，0-禁用，-1-已删除")
    private Integer status;

    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    @Schema(description = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @Schema(description = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
} 
